home *** CD-ROM | disk | FTP | other *** search
- Path: cssun.mathcs.emory.edu!gatech!usceast!sridhar
- From: sridhar@cs.sc.edu (M. A. Sridhar)
- Newsgroups: comp.lang.c++,comp.os.os2.programmer.misc,comp.os.os2.programmer.oop,comp.os.os2.programmer.tools,comp.os.ms-windows.programmer.misc,comp.os.ms-windows.programmer.tools,comp.os.ms-windows.programmer.tools.owl,comp.os.ms-windows.programmer.tools.mfc,comp.windows.x,comp.windows.x.motif,comp.object,comp.os.ms-windows.programmer.tools.misc,comp.windows.misc
- Subject: ANNOUNCE: YACL version 1.5 available
- Date: 9 Mar 1996 01:58:55 GMT
- Organization: University of South Carolina - Columbia - Computer Science
- Distribution: inet
- Message-ID: <4hqokv$5t8@redwood.cs.sc.edu>
- NNTP-Posting-Host: oak.cs.sc.edu
- Keywords: Class library, multi-platform, core classes, GUI, MVC
- X-Newsreader: NN version 6.5.0 (NOV)
-
-
-
- YACL version 1.5 is now available. The readme file is attached.
-
- Sridhar
-
- ------------------------------------------------------------------------------
-
-
- README.TXT for YACL
- Version 1.5
- March 8th, 1996
-
-
-
- What's new in version 1.5:
-
- * An interactive dialog editor written using the YACL classes,
- so as to be entirely portable
-
- * A bitmap viewer, contributed by Tony T. Ton (t.t.ton@massey.ac.nz)
-
- * A few contributions by other YACL users:
-
- - Classes for supporting accelerator keys, by Ludovic Brenta, in
- the directory contrib/accel.
-
- - Makefile changes for building YACL as shared libraries under
- Solaris with GNU C++, by Jeff Long (long@tiny.mitre.org). These
- changes have been integrated into the YACL library makefiles;
- look in the file control/gnuc/solaris.cfg and in
- base/gnuc.mak, io/gnuc.mak and ui/gnuc.mak for details on
- how to do this.
-
-
- * A few new classes:
-
- - A 3DLabel class, which is a Label that draws itself with a 3-d
- effect. This looks good for status bars and the like. See
- the demo programs uidemo/3dlabels and uidemo/scrolwin for
- illustrations of its use.
-
- - A ScrollableWindow class representing a window that has scroll
- bars attached at its right and bottom. See the deom
- program uidemo/scrolwin for an example.
-
- - The DwgSurfaceInMemory now is tested to work correctly on all
- platforms. The 3DLabel uses this class to speed up drawing.
-
- - MDI classes for supporting the Multiple Document Interface
- (under Windows, Win32 and OS/2 only).
-
-
- * Support for more compilers:
-
- - GNU C++ 2.7.2 and EMX 0.9b (under OS/2) are now supported.
-
- - Native C++ compilers on SGI IRIX (Delta C++) Solaris 2.4
- (Centerline C++) are supported; makefiles are included in
- the distribution.
-
- * Numerous bug fixes and enhancements to make YACL more
- stable. For example:
-
- - Support for checkable menu items
- - A static SetDefaultTextStyle method for UI_Label, to set
- the default style for all Labels
- - Support for default push buttons for dialogs
- - Cross-hair and up-arrow cursors under OS/2
- - Separate interface and implementation for CL_Basics, to
- make it easier to instantiate pointer-based containers
-
-
-
-
-
- About YACL:
-
- This is YACL (Yet Another Class Library). It is a general-purpose
- programming library designed with the idea of identifying and implementing
- useful object abstractions that frequently occur in application development,
- so that development effort can be cut down significantly. The abstractions
- are designed to be application-domain-specific rather than
- platform-specific. This yields two major benefits:
-
- - The programming task becomes easier, since the application developer
- has high-level objects available.
-
- - Portability is a natural spinoff: any application that is coded to use
- YACL's classes will be runnable on any of the supported platforms with
- merely a recompilation.
-
- YACL is part of an ongoing project to create a completely portable program
- development environment.
-
-
- YACL consists of three kinds of classes: base classes (consisting of
- primitive data types and container classes), I/O classes (for data storage
- and retrieval) and GUI classes using a variation of the
- Model-View-Controller paradigm. YACL's base and I/O classes have been
- designed to support the most efficient algorithms possible, and to impose as
- few storage constraints as possible. All classes (base, I/O and GUI) have
- been tested for memory and resource leaks.
-
- CONCEPTUAL FEATURES:
-
- - Template-based containers for code sharing
-
- - Easy inter-object communication via notification (used
- extensively in the GUI framework -- see below)
-
- - Support for storage and retrieval of objects in binary form
-
- - Support for very large sequences, sets and maps (with up to about
- 89 million entries), even under MS Windows, thus circumventing
- the 64K segment size limitation
-
-
- FUNCTIONAL FEATURES:
-
- Base library:
-
- - primitive data types: string, date, time of day, byte array,
- byte string
-
- - container classes (template-based): sequence (in lieu of
- lists), set, bitset, map, tree; as noted above, the sequence,
- set and map can have size up to about 89 million, even under
- MS Windows' segmented architecture
-
- - utility classes: string splitter, tree walker
-
- - memory leak checker class, and support for checking for leaks
- and memory corruption errors
-
- File I/O library:
-
- - SlottedFile for managing files with fixed-length records (well
- suited for tables in relational databases); manages upto 800
- million records with at most five I/O operations per record
-
- - ByteStringStore for managing files with variable-length
- records (whose lengths can even grow and shrink dynamically)
- -- suited, for example, for maintaining secondary indices or
- other "binary large object" data
-
-
- B-trees:
-
- - In-memory and disk-based B-trees supported, both sharing the
- same B-tree algorithm code
-
- - Can be used in conjunction with the above file I/O library for
- B-trees with variable-length keys
-
- GUI library:
-
- - Portable abstractions for building graphic user interfaces,
- based on the model-view-controller paradigm
-
- - Leverages platform's native API. So GUI applications have the
- native look and feel.
-
- - GUI objects well integrated with base library, to enhance the
- overall power and reusability of classes
-
- - GUI objects: menus, dialogs, buttons, listboxes, button
- groups, and the like
-
- - Graphic resource objects: cursors, fonts, pens, colors and
- brushes
-
- - Graphic objects: bitmaps, ellipses, rectangles, arcs and pie
- wedges, 3-d graphics with raised and recessed lines and
- rectangles
-
- - Supports printing under OS/2, MS Windows and Windows NT
-
- - Provides for easy composition of basic objects, as well as
- high reusability
-
- - Includes many demo programs
-
-
- CURRENT STATUS (As of March 8th,, 1996):
-
- The YACL base classes provide equivalent functionality under DOS, Microsoft
- Windows, Microsoft Windows NT, OS/2 versions 2.1 and Warp and several
- flavors of Unix. The GUI classes provide equivalent functionality under
- four platforms: MS Windows, Windows NT, OS/2 PM and Unix with X/Motif. Here
- is a summary of the platforms and compilers it has been tested under. (The
- YACL package includes makefiles for all the platforms and compilers listed
- below.)
-
-
- Platform Compiler
- --------- --------
-
- MS Windows Borland C++ 4.0 and later
- Watcom C++ 10.0a
-
- MS Windows NT Borland C++ 4.0 and later
- Watcom C++ 10.0a
- Microsoft Visual C++ 2.1
-
- OS/2 2.1 Borland C++ 1.5
-
- OS/2 Warp EMX (GNU) C++ 2.6.3 and later
- Borland C++ 1.5
- Watcom C++ 10.0a
- IBM Visual Age C++ 3.0
-
- Linux GNU C++ 2.6.3 and later
-
- SunOS 4.1 GNU C++ 2.6.3 and later
-
- Solaris 2.3 Centerline C++ version 4.0
- GNU C++ 2.6.3 and later
-
- SGI Irix 5.3 SGI Delta C++
- GNU C++ 2.6.3 and later
-
- DEC Ultrix GNU C++ 2.6.3
-
- NCR SysV GNU C++ 2.6.3
-
-
- The implementations do not use any compiler-specific features, and so it
- should be easy to build the library using other compilers. The base classes
- will not compile under versions of GNU C++ earlier than 2.6.1 due to bugs in
- the compiler.
-
- YACL cannot be compiled with any compiler that does not support templates.
-
- Under Microsoft Windows, YACL's classes have been tested for memory and
- resource leaks using Bounds Checker for Windows.
-
-
-
-
- AVAILABILITY:
-
- YACL is available via:
-
- World-wide web: http://www.cs.sc.edu/~sridhar/yacl.html
-
- Anonymous ftp: From ftp.cs.sc.edu (129.252.131.11), in the
- directory /pub/yacl. Log in as anonymous, with
- your e-mail address as password.
-
- There is also a YACL mailing list. To be included in it, please send e-mail
- to yacl-list@cs.sc.edu with the message "subscribe yacl-list address" where
- address is your e-mail address.
-
- Please send your comments, suggestions and bug reports to the author at the
- address below.
-
-
- HOW TO USE:
-
- Look in the directory doc for compiler- and platform-specific
- documentation. Also look in the file shiplist.txt for the names of
- files that document the use of YACL with various compilers.
-
-
-
- DOCUMENTATION:
-
- A tutorial and reference manual for YACL, titled "Building portable C++
- applications with YACL," is now available from Addison-Wesley Publishing
- Company (ISBN 0-201-83276-3). This book describes everything needed to use
- YACL effectively. All comments, criticisms and reports of bugs or other
- errors in both the software and the book will be gratefully accepted by the
- author at the address below.
-
- Note that the book describes YACL version 1.3, which was released in July
- 1995. Functionality added subsequently is not described in the book; see the
- files doc/changlog.txt and doc/news.txt for details.
-
-
-
- COPYRIGHT:
-
- This software is Copyright (C) M. A. Sridhar, 1996. You are free to copy,
- modify and distribute this software as you see fit, and to use it for any
- purpose, provided this copyright notice and the following disclaimer are
- included without modification in all copies and modifications of the source
- code. (If you do not distribute this source code or modifications thereof,
- you need not include this copyright or disclaimer.)
-
-
- DISCLAIMER:
-
- The author makes no warranties, either expressed or implied, with respect to
- this software, its quality, performance, merchantability, or fitness for any
- particular purpose. This software is distributed AS IS. The user of this
- software assumes all risks as to its quality and performance. In no event
- shall the author be liable for any direct, indirect or consequential
- damages, even if the author has been advised as to the possibility of such
- damages.
-
-
- AUTHOR: M. A. Sridhar
-
- Snail mail: E-mail: sridhar@cs.sc.edu
- Department of Computer Science WWW: http://www.cs.sc.edu/~sridhar
- University of South Carolina Phone: (803) 777-2427
- Columbia, SC 29208 Fax: (803) 777-3767
- USA
-
-
- CONTRIBUTORS:
-
- N. Bhowmik, currently with Object Design Inc., coded the initial
- version of the GUI classes of YACL.
-
- Ram Sampath implemented several aspects of Motif functionality.
-
- Holger Pfaff (holger.pfaff@class.de) provided several bug fixes and
- enhancements under MS Windows and Motif.
-
- Tony T. Ton (t.t.ton@massey.ac.nz) helped out with bug fixes and
- enhancements under OS/2.
-
- Tom Satter (tsatter@purecode.com) contributed the fixes and makefiles
- for IBM Visual Age C++ 3.0 under OS/2.
-
- Rajesh Chandran (chandran@cs.sc.edu) showed how to make YACL
- applications compatible with editres under X windows.
-
- Jody Hagins (gamecox@magicnet.net) contributed makefiles for Centerline
- C++ under Sun Solaris.
-
-
- RELATED PROJECTS:
-
-
- Bitmap viewer: (Author: Tony Ton)
-
- The directory apps/bmpview includes a bitmap viewer for displaying
- Windows bitmaps.
-
- Dialog editor: (Author: M. A. Sridhar)
-
- Included in the distribution, in the directory apps/dlged, is a
- simple dialog editor that outputs YACL ViewDescriptor arrays. This
- array description is platform-independent.
-
-
- Conversion from Windows RC files:
-
- An awk script is available for translating MS Windows resource files
- into a form usable by YACL. Direct support for dialogs loaded from
- Windows resource files is also available under Windows and Windows
- NT; this is, however, a non-portable feature.
-
-
- Macintosh port:
-
- Ken Crismon (kcrismon@sybase.com) is working on porting YACL to the
- Macintosh environment.
-
-
- Other contributions:
-
- The directory contrib is the beginnings of contributed software by
- various people. At present, it contains two directories:
-
- - contrib/accel contains derived classes for supporting
- accelerator keys, contributed by Ludovic Brenta
- (brenta@gprhp.insa-lyon.fr).
-
- - contrib/sharedlib contains makefiles for building
- shared-library versions of the YACL libraries under Solaris,
- contributed by Jeff Long (long@tiny.mitre.com). These changes
- have been folded into the default GNU C++ makefiles.
-
-
- -------------------------- END OF README.TXT -----------------------------
-
- --
- M. A. Sridhar | sridhar@usceast.cs.sc.edu (Internet)
- Department of Computer Science | http://www.cs.sc.edu/~sridhar/
- University of South Carolina | (803) 777-3767 (Fax)
- Columbia, SC 29208 | (803) 777-2427 (Ma Bell)
- --
- M. A. Sridhar | sridhar@usceast.cs.sc.edu (Internet)
- Department of Computer Science | http://www.cs.sc.edu/~sridhar/
- University of South Carolina | (803) 777-3767 (Fax)
- Columbia, SC 29208 | (803) 777-2427 (Ma Bell)
-